package br.edu.fafica.pi1.arkhanhorror.model;

import java.util.ArrayList;

public class Personagem {
	
	private int codigo;
	private String nome, profissao, descricao, srcImagem;
	private int maxSanidade, maxResistencia, maxFoco;
	private int sanidade, resistencia, foco;
	private int pistas;
	private int velocidade, escapulir, luta, vontade, conhecimento, sorte;
	private int posVelEsc, posLutVon, posConSor;
	private ArrayList<Carta> modificadores;
	
	public Personagem() {
		this.nome = "Unknown";
		this.profissao = "Unknown";
		this.descricao = "Unknown";
		this.srcImagem = "\\resource\\ally\\AllyCardBack.png";
		this.maxSanidade = this.maxResistencia = this.maxFoco = 0;
		this.sanidade = this.resistencia = this.foco = 0;
		this.pistas = 0;
		this.velocidade = this.escapulir = this.luta = this.vontade = this.conhecimento = this.sorte = 0;
		this.posVelEsc = this.posLutVon = this.posConSor = 0;
		
		this.modificadores = new ArrayList<Carta>();
	}
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getProfissao() {
		return profissao;
	}
	public void setProfissao(String profissao) {
		this.profissao = profissao;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getSrcImagem() {
		return srcImagem;
	}
	public void setSrcImagem(String srcImagem) {
		this.srcImagem = srcImagem;
	}
	public int getPistas() {
		return pistas;
	}
	public void addPistas(int pistas) {
		this.pistas += pistas;
	}
	public void removePistas(int pistas) {
		this.pistas -= pistas;
	}
	public int getMaxSanidade() {
		int maxSanidade = this.maxSanidade;
		for (Carta c : modificadores) {
			maxSanidade += ((Personagem) c).getMaxSanidade();
		}
		return maxSanidade;
	}
	public void setMaxSanidade(int maxSanidade) {
		this.maxSanidade = maxSanidade;
	}
	public int getSanidade() {
		return sanidade;
	}
	public void setSanidade(int sanidade) {
		this.sanidade = sanidade;
	}
	public int getMaxResistencia() {
		int maxResistencia = this.maxResistencia;
		for (Carta c : modificadores) {
			maxResistencia += ((Personagem) c).getMaxResistencia();
		}
		return maxResistencia;
	}
	public void setMaxResistencia(int maxResistencia) {
		this.maxResistencia = maxResistencia;
	}
	public int getResistencia() {
		return resistencia;
	}
	public void setResistencia(int resistencia) {
		this.resistencia = resistencia;
	}
	public int getMaxFoco() {
		int maxFoco = this.maxFoco;
		for (Carta c : modificadores) {
			maxFoco += ((Personagem) c).getMaxFoco();
		}
		return maxFoco;
	}
	public void setMaxFoco(int maxFoco) {
		this.maxFoco = maxFoco;
	}
	public int getFoco() {
		return foco;
	}
	public void setFoco(int foco) {
		this.foco = foco;
	}
	public int getVelocidade() {
		int velocidade = this.velocidade;
		for (Carta c : modificadores) {
			velocidade += ((Personagem) c).getVelocidade();
		}
		return velocidade;
	}
	public void setVelocidade(int velocidade) {
		this.velocidade = velocidade;
	}
	public int getEscapulir() {
		int escapulir = this.escapulir;
		for (Carta c : modificadores) {
			escapulir += ((Personagem) c).getEscapulir();
		}
		return escapulir;
	}
	public void setEscapulir(int escapulir) {
		this.escapulir = escapulir;
	}
	public int getLuta() {
		int luta = this.luta;
		for (Carta c : modificadores) {
			luta += ((Personagem) c).getLuta();
		}
		return luta;
	}
	public void setLuta(int luta) {
		this.luta = luta;
	}
	public int getVontade() {
		int vontade = this.vontade;
		for (Carta c : modificadores) {
			vontade += ((Personagem) c).getVontade();
		}
		return vontade;
	}
	public void setVontade(int vontade) {
		this.vontade = vontade;
	}
	public int getConhecimento() {
		int conhecimento = this.conhecimento;
		for (Carta c : modificadores) {
			conhecimento += ((Personagem) c).getConhecimento();
		}
		return conhecimento;
	}
	public void setConhecimento(int conhecimento) {
		this.conhecimento = conhecimento;
	}
	public int getSorte() {
		int sorte = this.sorte;
		for (Carta c : modificadores) {
			sorte += ((Personagem) c).getSorte();
		}
		return sorte;
	}
	public void setSorte(int sorte) {
		this.sorte = sorte;
	}
	public int getPosVelEsc() {
		return posVelEsc;
	}
	public void setPosVelEsc(int posVelEsc) {
		this.posVelEsc = posVelEsc;
	}
	public int getPosLutVon() {
		return posLutVon;
	}
	public void setPosLutVon(int posLutVon) {
		this.posLutVon = posLutVon;
	}
	public int getPosConSor() {
		return posConSor;
	}
	public void setPosConSor(int posConSor) {
		this.posConSor = posConSor;
	}
	
	public void addModificador(Carta modificador) {
		this.modificadores.add(modificador);
	}
	
	public void removeModificador(Carta modificador) {
		this.modificadores.remove(modificador);
	}
}